数学建模
文献查询:
数据查询:
Python图形处理库 一、panda库 import pandas as pddata = pd.read_excel(r'.\data.xlsx' ,'sheet1' ) lst = data.columns data.loc[row] data.iloc[row] data.iloc[row,col] df = pd.DataFrame({'col1' :col_1, 'col2' :col_2}) writer = pd.ExcelWriter('output.xlsx' ) df.to_excel(writer,sheet_name='Sheet1' ,index=False ) writer._save()
二、matlab库
【Matplotlib】add_subplot 和 subplots_adjust
import matplotlib.pyplot as pltplt.<matlab_function> plt.show() for title in lst[-6 :-1 ]: fig = plt.figure(title, figsize=(6 , 4 )).add_subplot(111 ) fig.scatter(data['时间' ], data[title]) fig.set_xlabel('天' ) fig.set_ylabel(title) fig.set_title(title) plt.show() x = data['时间' ] y = data[lst[idx]] f = interpolate.interp1d(x,y,kind="linear" ) new_y = f(x) fig = plt.figure(lst[idx], figsize=(20 , 20 )).add_subplot(111 ) fig.plot(x,y,'-or' ,label='Original' ) fig.plot(x,new_y,'-*b' ,label='Interpolate' ) fig.set_xlabel('天' ) fig.set_ylabel(lst[idx]) fig.set_title(lst[idx]) plt.legend() plt.show() plt.rcParams['font.sans-serif' ]=['SimHei' ] plt.rcParams['axes.unicode_minus' ] = False
MATLAB
official::MATLAB Documentation - MathWorks 中国
云MATLAB
一、软件使用
二、基本语法
1 数据类型 1.1 变量
定义变量
x = sym('x' ); syms x,y,z; f = symfun(3 *x^2 +4 *y^2 +1 ,[x,y]) ans pi eps inf NAN i ,j
1.2 数字
同pyhton。
1.3 字符和字符串 s = 'str' abs (s)char(num) num2str(num) length (s)
1.4 矩阵 mat = [1 2 3 ;4 5 6 ;] new_mat = mat' new_mat = mat(:) new_mat = inv(mat) E = mat * inv(mat) E = 1 :2 :9 E = repmat (mat,row_rep,col_rep) E = ones (row,col) E = zeros (row,col,Dimension) E(3 ,:) E(:,:,2 ) E = A + B E = A - B E = A * B E = A .* B E = A / B E = A ./ B E = A \ B E = A ^ B E = A .^ 3
1.5 元胞数组
类似于python的list
类似列表
cel = cell(row,col) cel{index}
1.6 结构体
类似于python的dict
类似字典
dic = struct(key,value[,key,value,...]) dic.key dic.key(n) dic.key{n} dic = struct('name' ,{{'a' ,'b' }) dic.name dic.name(1 ) dic.name{1 }
2 逻辑流程 for var = start:step:end ...; ...; end while exp ...; ...; end if exp ...; else ...; end switch num/str case num/str ...; case num/str ...; otherwise ...; end
3 函数 3.1 数学函数
幂函数:$x^n$。使用:x^n
指数函数:$a^x$,$e^x$。使用:a^x exp(x)
对数函数:$ln x$。使用:log(x)
三角函数:$tan(x)$。使用:tan(x)
反三角函数:$arcsin(x)$。使用:asin(x)
sum() mean ()cumsum() solve('exp1' ,'exp2' ,...,'var1' ,'var2' ,...) solve('sin(x)+x=0' ) solve('sin(X)+x' ) [x,y]=solve('x^2 + x*y + y = 3' ,'x^2 - 4*x + 3 = 0' )
3.2 随机数 rand (m,n)rand (m,n,'double' ) rand (RandStream,m,n) randn (m,n)randi(iMax) randi(iMax,m,n) randi([iMin,iMax],m,n)
3.3 操作函数
神奇的数学—幻方的智慧 - 知乎 (zhihu.com)
3.4 查找函数 size ()length ()[m,n] = find (mat > num)
3.5 样式函数
4 文件 xlsread(file,sheet,range) A = xlsread('data.xls' ,'附件1' ,'A4:E322' ) xlswrite() imread()
5 matlab命令 5.1 屏幕命令
5.2 数学命令 diff(f,x,n) int() taylor() dsolve()
三、绘图 1 二维绘图 figure plot (x,y)title('str' ) xlabel('str' )/ylabel('str' ) xlim([start end ]) [AX,H1,H2] = plotyy(x,y1,x,y2) set(get(AX(1 ),'Ylabel' ),'String' ,'Slow Decay' ) set(get(AX(2 ),'Ylabel' ),'String' ,'Fast Decay' ) set(H1,'LineStyle' ,'--' ) set(H1,'LineStyle' ,':' ) scatter (x,y)legend ()
线与点参数
2 三维绘图 plot3 (x,y,z)zlable('str' ) hold on/offgrid on/off axis square
模型算法 一、数据处理
SPSSPRO
利用python对一份AQI数据进行分析与预测
1 缺失值
比赛提供的数据,发现有些单元格是null或空的。
缺失太多:例如调查人口信息,发现“年龄”这一项缺失了40%,就直接把该项指标删除。
数据缺失值处理方式:
最简单处理:均值、众数插补
定量数据,例如关于一群人的身高、年龄等数据,用整体的均值来补缺失
定性数据,例如关于一群人的性别、文化程度;某些事件调查的满意度,用出现次数最多的值补缺失
适用赛题 :人口的数量年龄、经济产业情况等统计数据,对个体精度要求不大的数据
Newton插值法
根据固定公式,构造近似函数,补上缺失值,普遍适用性强
缺点:区间边缘处的不稳定震荡,即龙格现象。不适合对导数有要求的题目
适用赛题:热力学温度、地形测量、定位等只追求函数值精准而不关心变化的数据
样条插值法
用分段光滑 的曲线去插值,光滑意味着曲线不仅连续,还要有连续的曲率
适用赛题 :零件加工,水库水流量,图像“基线漂移”,机器人轨迹等精度要求高、没有突变的数据
2 异常值
样本中明显和其他数值差异很大的数据,例如一群人的身高数据中有个3米2的
数据异常值处理方式:
正态分布3σ原则
数值分布在(μ-3σ,μ+3σ)中的概率为99.73%,其中μ为平均值,σ为标准差
求解步骤:1.计算均值μ和标准差σ;2.判断每个数据值是否在(μ-3σ,μ+3σ)内,不在则为异常值
适用题目:总体符合正态分布,例如人口数据、测量误差、生产加工质量、考试成绩等。
不适用题目:总体符合其他分布,例如公交站人数排队论符合泊松分布。*
画箱型图
箱型图中,把数据从小到大 排序。下四分位数𝑄1是排第25%的数值,上四分位数𝑄3是排第75%的数值
四分位距𝐼𝑄𝑅 = 𝑄3- 𝑄1,也就是排名第75%的减去第25%的数值
与正态分布类似,设置个合理区间 ,在区间外的就是异常值
一般设[𝑄1 − 1.5 ∗ 𝐼𝑄𝑅, 𝑄3 + 1.5 ∗ 𝐼𝑄𝑅]内为正常值
适用题目:普遍适用
异常数据处理方法与缺失值处理相同。
3 处理函数
fillmissing
filloutliers
# 缺失值插补 F = fillmissing(A,method) # 异常值插补 B = filloutliers(A,fillmethod,findmethod)
二、模型建立 1 线性规划
在一组线性约束条件的限制下,求一线性目标函数的最大或最小值的问题。
例:两个车间生产A、B机床,限制条件不同,求最大利润。
2 整数规划
规定变量部分或全部限制为整数。
全限制为完全整数规划,部分限制为混合整数规划。
3 非线性规划
约束条件或目标函数包含非线性函数。
例:投资决策
4 动态规划
选或不选,得到最佳答案。
例:生产调度,资源分配
5 图与网络
图题
例:最短路径,公路连通。
6 排队论
排队模型。
7 对策论
博弈论。
例:囚徒困境。
8 层次分析法
逐级分析问题。
例:假期旅游(目的地——路上选择——具体措施)
9 插值和拟合
插值:求过已知有限个数据点的近似函数。
拟合:近似函数可以不过数据点,总偏差最小即可。
10 数理统计
大数据分析。
例:学生的身高体重。
11 方差分析
检验两个以上总体的均值彼此是否相等。
例:灯泡的品质。
12 回归分析
拟合的函数是否满足预测要求。
13 微分方程建模
问题中存在需要计算微分的地方。
例:多级火箭问题。
19 神经网络
BP神经网络预测回归MATLAB代码